<?php

function Page($count, $pagesize = 10)
{
    $p = new Think\Page($count, $pagesize);
    $p->setConfig('header', '<li class="rows">共<b>%TOTAL_ROW%</b>条记录&nbsp;第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>');
    $p->setConfig('prev', '上一页');
    $p->setConfig('next', '下一页');
    $p->setConfig('last', '末页');
    $p->setConfig('first', '首页');
    $p->setConfig('theme', '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%');
    $p->lastSuffix = false; // 最后一页不显示为总页数
    return $p;
}

// 处理方法
function rmdirr($dirname)
{
    if (! file_exists($dirname)) {
        return false;
    }
    if (is_file($dirname) || is_link($dirname)) {
        return unlink($dirname);
    }
    $dir = dir($dirname);
    if ($dir) {
        while (false !== $entry = $dir->read()) {
            if ($entry == '.' || $entry == '..') {
                continue;
            }
            // 递归
            rmdirr($dirname . DIRECTORY_SEPARATOR . $entry);
        }
    }
}

// 公共函数
// 获取文件修改时间
function getfiletime($file, $DataDir)
{
    $a = filemtime($DataDir . $file);
    $time = date("Y-m-d H:i:s", $a);
    return $time;
}

// 公共函数
// 审核状态，1=审核成功，0=待审核；2=审核失败
function getStatusText($status)
{
    $text = '待审核';
    switch ($status){
        case 0:
            $text = '待审核';
            break;
        case 1:
            $text = '审核成功';
            break;
        case 2:
            $text = '审核失败';
            break;
    }
    return $text;
}

// 获取文件的大小
function getfilesize($file, $DataDir)
{
    $perms = stat($DataDir . $file);
    $size = $perms['size'];
    // 单位自动转换函数
    $kb = 1024; // Kilobyte
    $mb = 1024 * $kb; // Megabyte
    $gb = 1024 * $mb; // Gigabyte
    $tb = 1024 * $gb; // Terabyte
    
    if ($size < $kb) {
        return $size . " B";
    } else 
        if ($size < $mb) {
            return round($size / $kb, 2) . " KB";
        } else 
            if ($size < $gb) {
                return round($size / $mb, 2) . " MB";
            } else 
                if ($size < $tb) {
                    return round($size / $gb, 2) . " GB";
                } else {
                    return round($size / $tb, 2) . " TB";
                }
}

function think_send_mail($to, $name, $subject = '', $body = '', $attachment = null)
{
    $config = C('THINK_EMAIL');
    $setmail = M("set_mail");
    $rs = $setmail->where("smId=1")->find();
    vendor('PHPMailer.class#phpmailer'); // 从PHPMailer目录导class.phpmailer.php类文件
    vendor('SMTP');
    $mail = new PHPMailer(); // PHPMailer对象
    $mail->CharSet = 'UTF-8'; // 设定邮件编码，默认ISO-8859-1，如果发中文此项必须设置，否则乱码
    $mail->IsSMTP(); // 设定使用SMTP服务
    $mail->SMTPDebug = 0; // 关闭SMTP调试功能
                          // 1 = errors and messages
                          // 2 = messages only
    $mail->SMTPAuth = true; // 启用 SMTP 验证功能
    $mail->SMTPSecure = 'ssl'; // 使用安全协议
    $mail->Host = $rs["smSmtpHost"]; // SMTP 服务器
    $mail->Port = $rs["smSmtpPort"]; // SMTP服务器的端口号
    $mail->Username = $rs["smSmtpUser"]; // SMTP服务器用户名
    $mail->Password = $rs["smSmtpPass"]; // SMTP服务器密码
    $mail->SetFrom($rs["smFromEmail"], $rs["smFromName"]);
    $replyEmail = $rs["smReplayEmail"] ? $rs["smReplayEmail"] : $rs["smFromEmail"];
    $replyName = $rs["smReplayName"] ? $rs["smReplayName"] : $rs["smFromName"];
    $mail->AddReplyTo($replyEmail, $replyName);
    $mail->Subject = $subject;
    $mail->AltBody = "为了查看该邮件，请切换到支持 HTML 的邮件客户端";
    $mail->MsgHTML($body);
    $mail->AddAddress($to, $name);
    if (is_array($attachment)) { // 添加附件
        foreach ($attachment as $file) {
            is_file($file) && $mail->AddAttachment($file);
        }
    }
    return $mail->Send() ? true : $mail->ErrorInfo;
}

/**
 * 标示码后6位随机数
 * 产生一个指定长度的随机字符串,并返回给用户
 * @param type $len 产生字符串的长度
 * @return string 随机字符串
 */
function bsmRandomString($len = 6) {
    $chars = array(
        "0", "1", "2","3", "4", "5", "6", "7", "8", "9"
    );
    $charsLen = count($chars) - 1;
    // 将数组打乱
    shuffle($chars);
    $output = "";
    for ($i = 0; $i < $len; $i++) {
        $output .= $chars[mt_rand(0, $charsLen)];
    }
    return $output;
}
?>